// const BASE_URL = 'http://localhost:6500/';
import config from '@/config'
import { showError } from './errorCodeMessage'
import { isJSON } from './index'
const interceptor = {
    invoke(args) {
        // 可以修改args，如添加token等
        // 例如: args.header['Authorization'] = 'Bearer ' + getToken();
		
		// 非 http 开头需拼接地址
		if (!args.url.startsWith("http")) {
		  // args.url = BASE_URL + args.url;
		  
		  args.url = config.replacehUrl(args.url)
		}
		
		// 请求超时
		args.timeout = 20000;
		
		// 设置请求头
		args.header = {
		  ...args.header,
		  // "content-type": "application/json",
		};
		
		// 添加 token 请求头标识
		const token = uni.getStorageSync("token");
		if (token) {
		  args.header.Authorization = token;
		}
		
    },
    success(args) {
		const isJson = isJSON(args.data)
		if(isJson){
			args.data = JSON.parse(args.data)
		}
		const data = args.data
		showError(data.code, data.msg)
        // 在请求成功之后做些什么
        // console.log('请求拦截器: 请求成功', args);
    },
    fail(err) {
		console.error('请求错误 ',err)
		uni.showToast({
			title: '请求失败' + err,
			mask: true,
			icon: 'none'
		})
        // 在请求失败之后做些什么
        // console.log('请求拦截器: 请求失败', err);
    },
    complete() {
        // 在请求结束之后做些什么，无论成功或者失败都会调用
        // console.log('请求拦截器: 请求结束');
    }
}

// 添加请求拦截器
uni.addInterceptor('request',interceptor);
uni.addInterceptor('uploadFile',interceptor);

